#ifndef NODEPRIORITYQUEUE_H
#define NODEPRIORITYQUEUE_H

#include "Costs.h"

#include <vector>

class NodePriorityQueue
{
public:
	NodePriorityQueue(Costs* costs) : m_costs(costs) {}

	int Top() const;
	int Back() const;
	void Pop();
	void Push(int cell);
	bool IsEmpty() const;
	void ReSort();
private:
	Costs* m_costs;

	typedef std::vector<int> Nodes;
	Nodes m_nodes;
};

#endif //NODEPRIORITYQUEUE_H